package com.atguigu.yygh.user.controller;

import com.atguigu.yygh.common.result.R;
import com.atguigu.yygh.model.hosp.Schedule;
import com.atguigu.yygh.model.user.UserInfo;
import com.atguigu.yygh.user.service.UserInfoService;
import com.atguigu.yygh.vo.user.UserInfoQueryVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @description: 用户后天管路系统列表
 * @author: 化一帆
 * @date: 2022/12/6 20:07
 * @version: v1.0
 */
@RestController
@RequestMapping("/admin/user")
public class UserController {

    @Autowired
    private UserInfoService userInfoService;

    /**
     * @description:  显示用户列表，带条件的分页查询
     * @author 化一帆
     * @date 2022/12/6 20:09
     */
    @PostMapping("userlist/{page}/{limit}")//查询第几页，每页多少条
    public R userList(@PathVariable Integer page,
                      @PathVariable Integer limit,
                      @RequestBody UserInfoQueryVo userInfoQueryVo){

        //1.创建page对象
        Page<UserInfo> pageResult=userInfoService.userList(page,limit,userInfoQueryVo);
        return R.ok().data("pages",pageResult);
    }

    /**
     * @description: 锁定和解锁的接口
     * 接收前端出传递的当前行的id和状态
     * 通过该id查询用户，设置状态为前端传递过来的状态
     * @author 化一帆
     * @date 2022/12/6 21:09
     */
    @GetMapping("lock/{id}/{status}")
    public R lock(@PathVariable Long id,
                  @PathVariable Integer status){
       userInfoService.lock(id,status);
       return R.ok();
    }

    /**
     * @description:  查看详情的按钮接口
     * 通过用户的id查询用户的所有的信息以及用户下的所有的就诊人列表
     *  返回用户信息+就诊人的列表
     * @author 化一帆
     * @date 2022/12/6 21:18
     */

    @GetMapping("show/{id}")
    public R show(@PathVariable Long id){
        Map<String,Object> map=userInfoService.show(id);
        return R.ok().data(map);
    }

    //认证审批
    @GetMapping("auth/{userId}/{authStatus}")
    public R approval(@PathVariable Long userId,@PathVariable Integer authStatus) {
        userInfoService.approval(userId,authStatus);
        return R.ok();
    }

    //通过手机号查询用户
    @GetMapping("getUserPhone/{userId}")
    public String getUserPhone(@PathVariable("userId") Long userId){
        String phone = userInfoService.getById(userId).getPhone();
        return phone;
    }
}
